lookup

Overview

Name:
lookup
Namespace:
http://www.wyona.org/yanel/resource/1.0
Universal Name:
<{http://www.wyona.org/yanel/resource/1.0}lookup/>
Description:
Lookup (sitetree nodes)
Java Class:
org.wyona.yanel.impl.resources.navigation.lookup.LookupResource

Views

View IDMime typeType
DEFAULTtext/htmljelly
json-nodeapplication/jsonjelly
json-node-gridapplication/jsonjelly

Request Parameter

NameExplanations
typetype of filters. see Filters.
show-collections-onlytrue/false to hide non-collection nodes

Resource Type Properties

NamemultipleExplanations
name4path-parameterfalseHere you could configure the request-parameter-name which will control which path is displayed
show-collections-onlyfalseIf true only child nodes which are collections are displayed
filter-pattern-{TYPE}trueValue is a regex to match node-names.

Filters

filters allow you to filter out filetypes. filtering is controled by resource-type properties filter-pattern-{TYPE} and request-parameter type.

Example

if you want to display images of typ jpg, gif, png then you have to configure filters within your resource-configuration, e.g.

        <yanel:property name="filter-pattern-image" value=".*[.]gif"/>
        <yanel:property name="filter-pattern-image" value=".*[.]jpg"/>
        <yanel:property name="filter-pattern-image" value=".*[.]png"/>
      
now if you call the node list with request parameter 'type=image' all the properties (filters) with name 'filter-pattern-image' are applied.

Examples

Resource-type-configuration example (tinymce-lookup.html.yanel-rc)

      <?xml version="1.0"?>
      
      <<yanel:resource-config xmlns:yanel="http://www.wyona.org/yanel/rti/1.0">
        <yanel:rti name="lookup" namespace="http://www.wyona.org/yanel/resource/1.0"/>
      
        <yanel:property name="name4path-parameter" value="node"/>
        <yanel:property name="filter-pattern-image" value=".*[.]gif"/>
        <yanel:property name="filter-pattern-image" value=".*[.]jpg"/>
        <yanel:property name="filter-pattern-image" value=".*[.]png"/>
        
        
        <yanel:custom-config>
          <views xmlns="http://www.wyona.org/yanel/rti/1.0">
            <view id="default" type="jelly">
              <template>rthtdocs:/tinymce-lookup.jelly</template>
              <mime-type>text/html</mime-type>
            </view>
      
            <!-- json view -->
            <view id="json-node" type="jelly">
              <template>rthtdocs:/json-node.jelly</template>
              <xslt>rthtdocs:/json-node.xsl</xslt>
              <mime-type>application/json</mime-type>
              <serializer key="TEXT">
              </serializer>
            </view>
      
            <!-- json view -->
            <view id="json-node-grid" type="jelly">
              <template>rthtdocs:/json-node.jelly</template>
              <xslt>rthtdocs:/json-node-grid.xsl</xslt>
              <mime-type>application/json</mime-type>
              <serializer key="TEXT">
              </serializer>
            </view>
          </views>
          
          <rc:sitetree class="org.wyona.yanel.impl.navigation.SitetreeResConfigAndDataRepoImpl" xmlns:rc="http://www.wyona.org/yanel/resource/sitetree/1.0"/>
          
        </yanel:custom-config>
      </yanel:resource-config>
    
    

'default'-view example. (tinymce-lookup.jelly)

      <?xml version="1.0" encoding="utf-8"?>
      <j:jelly xmlns:j="jelly:core">
          <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
              <script language="javascript" type="text/javascript" src="${yanel.back2realm}${yanel.reservedPrefix}/resource-types/http://www.wyona.org/yanel/resource/1.0::tinymce/tinymce/jscripts/tiny_mce/tiny_mce_popup.js"></script>
              <script language="javascript">
                var lookupTreeConfig = {
                    "lookup-panel-border": "false", 
                    "lookup-panel-padding": "15", 
                    "lookup-treepanel-width": "160", 
                    "lookup-treepanel-height": "315", 
                    "lookup-gridpanel-width": "240", 
                    "lookup-gridpanel-height": "300", 
                    "lookup-root-node-label": "Root",
                    "lookup-hook": "lookupHook",
                    "lookup-request-paramter-type": '${resource.getParameterAsString("type")}',
                    "lookup-upload-action-url": "${yanel.back2realm}create-new-page.html",
                    "lookup-upload-submit-button-label": "Upload",
                    "lookup-create-folder-name-default": "Folder Name",
                    "lookup-create-folder-submit-label": "new Folder",
                    "lookup-current-path-label": "Current Path:", 
                    "lookup-upload-enabled": "true",
                    "lookup-create-folder-enabled": "true"
                };
                // this methode is called by gwt
                function callback(path) {
                    FileBrowserDialogue.mySubmit(path);
                }
                var FileBrowserDialogue = {
                    mySubmit : function (path) {
                        var URL = '${yanel.back2realm}' + path.slice(1);
                        var win = tinyMCEPopup.getWindowArg("window");
                
                        // insert information now
                        win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = URL;
                
                        // are we an image browser
                        if (typeof(win.ImageDialog) != "undefined")
                        {
                            // we are, so update image dimensions and preview if necessary
                            if (win.ImageDialog.getImageData) win.ImageDialog.getImageData();
                            if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(URL);
                        }
                
                        // close popup window
                        tinyMCEPopup.close();
                    }
                }
                tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue);
              </script>        
              <link rel="stylesheet" type="text/css" href="${yanel.back2realm}${yanel.reservedPrefix}/gwt-ext-2.0.2/ext/resources/css/ext-all.css"/>
              <script type="text/javascript" src="${yanel.back2realm}${yanel.reservedPrefix}/gwt-ext-2.0.2/ext/adapter/yui/yui-utilities.js"></script>
              <script type="text/javascript" src="${yanel.back2realm}${yanel.reservedPrefix}/gwt-ext-2.0.2/ext/adapter/yui/ext-yui-adapter.js"></script>
              <script type="text/javascript" src="${yanel.back2realm}${yanel.reservedPrefix}/gwt-ext-2.0.2/ext/ext-all.js"></script>
              <title>TinyMCE Lookup</title>
              <link rel="stylesheet" href="${yanel.back2realm}${yanel.reservedPrefix}/yanel-css/global.css" type="text/css"/>
            </head>
            <body>
              <script language="javascript" src="${yanel.back2realm}${yanel.reservedPrefix}/resource-types/http://www.wyona.org/yanel/resource/1.0::lookup/js/org.wyona.yanel.navigation.gwt.lookuptree.LookupTree.nocache.js"></script>
              <div id="lookupHook"/>
              <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
            </body>
          </html>
      </j:jelly>
    

javascript/gwt source

See: https://github.com/wyona/yanel-contributions/tree/master/ajax-components/src/lookup-tree/README.txt